#include <stdio.h>

//联合体每次只能存放一个数据
//存放数据的类型只能是联合体中申明的类型

//联合体的大小取决于联合体中申明的类型中
//所占空间最大的那个类型
union Test
{
	int a;
	char b;
	double c;
	double arr[3];
};

void fun(int cmd, union Test t)
{
	if (0 == cmd)
	{
		t.a;
	}	
	else if (1 == cmd)
	{
		t.b;
	}
	else if (2 == cmd)
	{
		t.c;
	}
}

int main(void)
{
	union Test t;
	t.a = 90;
	printf("int data=%d\n", t.a);
	t.c = 189.456;
	printf("int data=%d\n", t.a);
	printf("double data=%lf\n", t.c);

	printf("size = %d\n", sizeof(t));

	t.a = 90;
	fun(0, t);

	t.b = 'A';
	fun(1, t);

	t.c = 3.14;
	fun(2, t);

	return 0;
}







